Method of embedding watermark into digital image

ABSTRACT

Methods of embedding and detecting a watermark into/from a digital image are disclosed. A method of embedding a watermark in accordance with the present invention includes generating a predicted image of an original image by using a linear predictor; generating a difference image by subtracting said predicted image from said original image or vice versa; and segmenting said difference image into sub-regions. The method further includes the steps of calculating a watermark amplitude for each sub-region or for each pixel of each sub-region; performing a channel coding process on a set of watermark data bits; calculating a watermark block for each sub-region by using said encoded data bits, a pseudo random sequence (PRS) and said watermark amplitude; and embedding said watermark block into each sub-region by adding said watermark block with pixel values of each sub-region. As a result of the method described, the embedded information is robust against any modifications including loss data compression, filtering, channel noise, cropping, geometrical transformations, and etc.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. Provisional Application No. 60/279,124, filed on Mar. 28, 2001, in the name of inventors A. L. Mayboroda, S. V. Smolentsev, M. A. Sall, V. V. Redkov, and A. I. Tikhotski, titled “THE METHOD OF DIGITAL IMAGE WATERMARKING EMPLOYING THE HIGH-DENSITY WAY OF EMBEDDING”, which is hereby incorporated by reference as if fully set forth herein.

BACKGROUND OF THE INVENTION

[0002] 1. Field of the Invention

[0003] The present invention relates to a method of embedding a watermark into a digital image, and more particularly, to a method of embedding a watermark into an image in a manner that the embedded information is robust against any modifications including loss data compression, filtering, channel noise, cropping, geometrical transformations, and etc.

[0004] 2. Discussion of the Related Art

[0005] Digital images are widely distributed on the Internet or with uses of many types of storage such as CD-ROM, hard and floppy disks, and etc. Therefore, the copyright protection of such digital images has become a very significant issue in the current digital media industry. One of ways of preserving the intellectual property rights of the digital images is digital watermarking.

[0006] One of typical digital watermarking methods is a statistical approach, which will be referred to as Patchwork hereinafter. Patchwork is based on a pseudo random and statistical process. It invisibly embeds a set of specific statistical information that has a Gaussian distribution into a host image. Some of main features of this approach are an extremely low rate of the embedded data and difficulties of decoding a watermark in the presence of severe affine transformation.

[0007] Another digital watermarking method is a spread spectrum technique, which proposes to embed watermark information in a log-2-spatio domain by using a spread spectrum technique. In the log-2-spatio domain, the variance of the information is significantly reduced. This improves the efficiency and robustness of spread spectrum technique. Low intensity and mid-band regions are selected to embed the information in order to guarantee the invisibility of the watermark as well as the robustness to JPEG compression.

[0008] Also, an effect that a channel coding process produces on the performance of the watermarking detection is analyzed. However, the mentioned methods or techniques do not achieve the main demands for watermarking, which are invisibility of watermarks and robustness to attacks including loose compression, filtering, geometric attacks such as re-sampling and rotations, and so on.

SUMMARY OF THE INVENTION

[0009] Accordingly, the present invention is directed to a method of watermarking a digital image that substantially obviates one or more problems due to limitations and disadvantages of the related art.

[0010] An object of the present invention is to provide a method of watermarking a digital image that is robust to any prevailing attacks

[0011] Additional advantages, objects, and features of the invention will be set forth in part in the description which follows and in part will become apparent to those having ordinary skill in the art upon examination of the following or may be learned from practice of the invention. The objectives and other advantages of the invention may be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings.

[0012] To achieve these objects and other advantages and in accordance with the purpose of the invention, as embodied and broadly described herein, a method of embedding a watermark into a digital image includes the steps of generating a predicted image of an original image by using a linear predictor; generating a difference image by subtracting the predicted image from the original image or vice versa; and segmenting the difference image into sub-regions.

[0013] The method further includes the steps of calculating a watermark amplitude for each sub-region or for each pixel of each sub-region; performing a channel coding process on a set of watermark data bits; and calculating a watermark block for each sub-region by using the encoded data bits, a pseudo random sequence (PRS) and the watermark amplitude; and embedding the watermark block into each sub-region by adding the watermark block with pixel values of each sub-region.

[0014] In another aspect of the present invention, a method of detecting a watermark from a digital image includes generating a predicted image from an original image by using a linear predictor, wherein an original watermark sequence is embedded into the original image; generating a difference image by subtracting the predicted image from the original image or vice versa; and segmenting the difference image into sub-regions.

[0015] The method further includes the steps of calculating a convolution set of a pseudo random sequence and pixels of each sub-region; and estimating a watermark data bit corresponding to each sub-region by using the convolution set.

[0016] It is to be understood that both the foregoing general description and the following detailed description of the present invention are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate embodiment(s) of the invention and together with the description serve to explain the principle of the invention. In the drawings;

[0018]FIG. 1 illustrates a watermark embedding process according to the present invention;

[0019]FIG. 2 illustrates a watermark detecting process according to the present invention;

[0020]FIG. 3 illustrates a high-density watermark embedding process according to the present invention; and

[0021]FIG. 4 illustrates the structure of a block watermark in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0022] Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

[0023]FIG. 1 shows a preferred embodiment of a watermark encoder embedding a watermark in accordance with the present invention. For embedding a watermark, an original image is divided into non-overlapped regions Ω={Ω₀, . . . , Ω_(m-1)}, each of which corresponds to a bit of the watermark, by an image segmetator. A given sequence of bytes is used as an embedded information set (4-5 bytes are written K times into an image). The main feature of the proposed algorithm is that a difference image D is used for embedding/detecting a watermark. In order to form the difference image, a linear prediction image is generated by a linear predictor.

[0024] A pseudo random sequence (PRS) generator generates a PRS for watermark embedding. Initial parameters and period characterize this sequence. The algorithm of the watermark embedding and detecting processes using a PRS is given by ${Y_{i} = {X_{i} + {\beta_{j} \cdot ɛ_{i}}}},{\beta_{j} = \left\{ {{{\begin{matrix} {1,{w_{j} = 1}} \\ {{- 1},{w_{j} = 0}} \end{matrix}P} = \left\{ {p_{0},\ldots \quad,p_{N - 1}} \right\}},{{p_{i}\varepsilon \left\{ {{- 1},1} \right\}}{W = \left\{ {w_{0},\ldots \quad,w_{M - 1}} \right\}}},{{w_{j}\varepsilon \left\{ {0,1} \right\}}{ɛ_{i} = {\alpha_{j} \cdot p_{i}}}},{\alpha_{j} = {f\left( \Omega_{j} \right)}},} \right.}$

[0025] where

[0026] X_(i) represents the pixel values of an original image region Ω_(j);

[0027] P represents a pseudo random sequence (PRS);

[0028] W represents a watermark bit sequence; and

[0029] ε_(i) represents an embedded sequence (α_(j)=1 for a simplest case)

[0030]FIG. 2 illustrates a preferred embodiment of a watermark decoder detecting a watermark in accordance with the present invention. A jth bit of a watermark is decoded by using a convolution set of PRS with the pixel of a region Ω_(j) (convolution unit): ${S_{j} = {{\sum\limits_{\Omega_{j}}{{D_{i} \cdot p_{i}}\quad {and}\quad {\hat{w}}_{j}}} = {{sign}\left( S_{j} \right)}}},$

[0031] where

[0032] D_(i) represents a component of a difference image; and

[0033] ŵ_(j) represents an estimation of the jth watermark bit.

[0034] A watermark of six-bytes sequence XABCDE is used, where X represents the constant byte for inner purposes of the algorithm, and other bytes contain the copyright information of an image. The watermark is recorded into the image K times depending on the block size and the image size. During the decoding process, the values of bits for all blocks are estimated. Further, the beginning of the watermark is searched by using the X value and the obtained bit sequences are written into an array

[0035] w₀ ⁰ w_(i) ⁰ . . . w_(L) ⁰

[0036] w₀ ^(l) w_(l) ^(l) . . . w_(L) ^(l)

[0037] . . . . . . . . . . . .

[0038] w₀ ^(K) w_(l) ^(K) . . . w_(L) ^(K)

[0039] , where w_(i) ^(j) is an estimation of the bit number i of the copy number j of the watermark.

[0040] The estimation of the watermark can be obtained for every bit by ${\hat{w}}_{i} = \left\{ {{\begin{matrix} {{1\quad {if}\quad s} \geq 0.5} \\ {{0\quad {if}\quad s} < 0.5} \end{matrix}\quad {when}\quad s} = \frac{\sum\limits_{j = {0\quad \ldots \quad K}}w_{i}^{j}}{K + 1}} \right.$

[0041] The perceptibility of a watermark depends on the amplitude of an embedded sequence, which is determined by a scale coefficient α^(j). This coefficient controls the compromise of the perceptibility versus the possibility of detection. The scale calculator calculates the amplitude of the watermark for every block by one of the following ways:

[0042] (1) Block Scale mode: $\alpha^{j} = {{1 + {\frac{\sum\limits_{\Omega_{j}}{D_{i}}}{{Scale} \cdot N \cdot g^{2}}\quad {and}\quad \alpha_{i}}} = \alpha^{j}}$

[0043] (2) Pixel Scale mode: ${{\alpha^{j}(i)} = {1 + \frac{D_{i}}{Scale}}},$

[0044] where D_(i) represents a component of a difference image. In Block Scale mode, α^(j) corresponds to a whole region Ω_(j). On the other hand, α^(j)(i) in Pixel Scale mode corresponds to each pixel of the region Ω_(j). The parameter Scale shown in both equations is in the range of 2 to 10.

[0045] In addition to the modes mentioned above, an adaptive scale mode can be implemented. The adaptive scale mode chooses the best value of the Scale parameter by iterations. The adaptive scaling process of choosing the best value depends on the original image. A larger Scale value leads to better watermark detection, but it deteriorates the quality of the image. The use of a smaller Scale value decreases the quality of the watermark detection. The adaptive calculation is performed with a feedback. At first, the block is encoded with Scale=10. Then the decoding is fulfilled. If decoding is successful, then the encoding of the next block is executed. Otherwise, the value of Scale is decreased (Scale=Scale/2), and the encoding is executed. The minimal value of Scale is set to Scale=2. So it is possible to select the optimal value of Scale. In the case where it is impossible to decode the watermark, this fact is known at the encoding stage.

[0046] The granulator is used to resist the low pass filtering and embeds the element PRS not in a pixel but in a square (g×g) of pixels. The increase of the parameter g leads to decrease the frequency of the embedded signal. But it increases the watermark perceptibility. The acceptable values of the parameter g are 2 and 3. The usage of the granular mode increases the block size for writing the watermark. It leads to decrease the number of watermarks written into the image.

[0047] The randomization is used for decreasing the watermark perceptibility in the granular mode. In this mode, a random sequence {tilde over (ε)}_(ik)=ε_(i)+w_(k) is embedded in square instead of the constant signal ε_(i), where w_(k) is uniformly distributed in the range [−ε_(i), ε_(i)]. Under decoding, the estimation of the obtained signal is performed by $X_{i} = {\frac{\sum\limits_{r \in {g \times g}}X_{r}}{g^{2}}.}$

[0048] The usage of the channel coding unit and the granulator unit decreases the number of bits, which can be written into an image. Therefore, the preferred embodiment of the present invention includes a way of writing additional bits into a block, and this is called a high-density mode. The block scheme of a method of detecting a high-density watermark is shown in FIG. 3. The main distinction of the proposed way of embedding is that a set of shifted PRSs, which are generated by the Phase Shifter, is used for the watermark embedding/detecting processes.

[0049] Another distinctive feature is to order an image block for increasing the number of states coded. Then the convolution unit calculates a set of convolution values for the shifted PRSs and orders an image block in different ways. The maximization unit compares the obtained convolution values and selects the convolution value corresponding to the maximum absolute value. The index of found convolution values conforms to the decoded bit set. The preferred embodiment of the algorithm writes 8 bits into a block. It uses 16 shifted PRSs and 8 types of ordering for transmitting 256 states.

[0050] The base-coding mode presumes to write a watermark in a sequential order (row-by-row). This means that the watermark does not go into the block row. In a case where the size of an image is slightly changed, all watermarks included in the image will be destroyed. Another problem is that if the blocks containing the watermark flag are not decoded, the whole watermark will be skipped until the next watermark flag. The block mode presumes to write the watermark into compact regions, for example, a square region (4×4) of the block size. Under this mode, the high-density mode is used automatically. Inasmuch as the watermark is written into 16 blocks, four blocks are used as flags bounding the watermark region. Another 12 blocks are used for writing the watermark information (4 information bytes and 8 control bytes providing the correction of 4 bytes). The bounding bytes contain different values so it is possible to determine the type of the corner. Therefore, in case of decoding errors, it is sufficient to decode two bytes to determine the correct position of the watermark. The number of watermarks embedded into the image is less, but the reliability is apparently higher.

[0051] It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions. Thus, it is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents. 

What is claimed is:
 1. A method of embedding a watermark into a digital image, the method comprising the steps of: generating a predicted image of an original image by using a linear predictor; generating a difference image by subtracting said predicted image from said original image or vice versa; segmenting said difference image into sub-regions; calculating a watermark amplitude for each sub-region or for each pixel of each sub-region; performing a channel coding process on a set of watermark data bits; calculating a watermark block for each sub-region by using said encoded data bits, a pseudo random sequence (PRS) and said watermark amplitude; and embedding said watermark block into each sub-region by adding said watermark block with pixel values of each sub-region.
 2. The method of claim 1, wherein said watermark block includes a first set of blocks for writing boundary bytes, a second set of blocks for writing information bytes, and a third set of blocks for writing control bytes.
 3. The method of claim 1, wherein said difference image is used for calculating said watermark amplitude for each sub-region or for each pixel of each sub-region.
 4. The method of claim 1, wherein, in the step of embedding said watermark block, a set of shifted pseudo random sequences are used for writing an increased number of bits into said block.
 5. The method of claim 1, wherein, in the step of embedding said watermark block, an ordering of an image block is used for writing an increased number of bits into said watermark block.
 6. A method of detecting a watermark of a digital image, the method comprising the steps of: generating a predicted image from an original image by using a linear predictor, wherein an original watermark sequence is embedded into said original image; generating a difference image by subtracting said predicted image from said original image or vice versa; segmenting said difference image into sub-regions; calculating a convolution set of a pseudo random sequence and pixels of each sub-region; and estimating a watermark data bit corresponding to each sub-region by using said convolution set.
 7. The method of claim 6, wherein said difference image is used for calculating said convolution set.
 8. The method of claim 6, wherein a set of shifted pseudo random sequences are used for calculating said convolution set.
 9. The method of claim 6, wherein a differently ordered original image is used for calculating said convolution set. 